<script>
	import store from '@/config/store'
	import base from '@/config/base'
	import Vue from 'vue'

	export default {
		onLaunch: function(e) {
			// 检查版本号，更新是清空登录凭证
			const version = uni.getStorageSync('version');
			if (version !== base.versionCode) {
				store.commit('user/clearToken');
				uni.setStorageSync('version', base.versionCode);
			}

			// 检查是否为微信H5
			// #ifdef H5
			this.setEnv()
			// #endif

			// 微信H5需要加载jsconfig
			if (store.state.env === 'wxh5') {
				this.initWxh5()
			}
			
			// 初始化程序
			store.dispatch('initApp');
		},
		onError: function (err) {
			// 上报错误
			console.log(err);
		},
		onShow: function(e) {
			//小程序更新
			// #ifdef MP-WEIXIN
			this.updateWxXcx()
			// #endif
		},
		onHide: function() {},
		methods: {
			setEnv() {
				// 判断是否为微信内置浏览器
				const UA = navigator.userAgent.toLocaleLowerCase()
				// UA的格式可能因设备不同而采用不同的大小写格式这里我们先统一为小写方便下一步判断
				if (UA.indexOf("micromessenger") != -1) {
					store.commit('setEnv', 'wxh5')
				} else {
					store.commit('setEnv', 'h5')
				}
			},
			initWxh5() {
				this.$apis.wechat.getJsConfig({ url: location.href.split('#')[0] })
					.then(res => {
						const jWeixin = require('jweixin-module')
						jWeixin.error(e => {
							console.error('jWeixin error:', e)
						})
						jWeixin.config({
							debug: false,
							appId: res.appId,
							timestamp: res.timestamp,
							nonceStr: res.nonceStr,
							signature: res.signature,
							jsApiList: res.jsApiList
						})
						jWeixin.ready(() => {
							Vue.prototype.$jswx = jWeixin
						})
					})
			},
			updateWxXcx() {
				if (uni.getUpdateManager) {
					const updateManager = uni.getUpdateManager();
					updateManager.onCheckForUpdate(function(res) {
						// 请求完新版本信息的回调
						console.log('新版本信息', res);
					});
					updateManager.onUpdateReady(function(res) {
						uni.showModal({
							title: '更新提示',
							content: '新版本已经准备好，是否重启应用？',
							success(res) {
								if (res.confirm) {
									// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
									updateManager.applyUpdate();
								}
							}
						});
					});
					updateManager.onUpdateFailed(function(res) {
						// 新的版本下载失败
						uni.showModal({
							title: '已经有新版本了哟~',
							content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
							showCancel: false
						});
					});
				}
			}
		}
	};
</script>

<style lang="scss">
	@import "./style/common.scss";
	@import "./style/quick.scss";
	@import "./style/iconfont.css";
	page {
		height: 100%;
		background-color: #f5f5f5;
	}
	/* #ifdef H5 */
	//修复H5底部导航挡住内容bug
	uni-app {
		height: auto;
	}

	//修复H5输入框上下不居中bug
	.uni-input-form {
		height: 100%;
	}
	//去除地图上高德地图标识符
	.amap-copyright {
		display: none !important;
	}
	
	.amap-logo {
		display: none !important;
	}
	
	.amap-ui-control-zoom {
		width: 60upx !important;
	}
	
	.amap-ui-control-zoom>* {
		width: 60upx !important;
		height: 60upx !important;
		line-height: 60upx !important;
	}
	
	.amap-ui-control-theme-dark {
		display: none !important;
	}
	/* #endif */
	uni-toast .uni-simple-toast__text {
		font-size: 36rpx;
	}
</style>
